$(function () {
    $('#uploadForm').submit(upload);
});

/**
 * processData：默认把表单内容转换成字符串，但我们上传的是文件
 * contentType：jQuery默认会设置文件类型，但我们不希望它设置，而是希望浏览器自动设置文件类型。
 *              因为提交文件时，文件是二进制的，怎么和其它文件区分开来？浏览器会加一个随机字符串，好拆分内容。
 * @returns {boolean}
 */
function upload() {
    let data = new FormData($('#uploadForm')[0]);
    $.ajax({
        url: "http://upload-z2.qiniup.com",
        method: "post",
        processData: false,
        contentType: false,
        data: data,
        success: function (data) {
            if (data && data.code == 0) {
                // 成功
                // 更新头像访问路径
                $.post(
                    CONTEXT_PATH + "/user/header/url",
                    {"fileName": $("input[name='key']").val()},
                    function (data) {
                        data = $.parseJSON(data);
                        if (data.code == "0") {
                            window.location.reload();
                        } else {
                            alert(data.msg);
                        }
                    }
                );
            } else {
                alert("上传失败！");
            }
        },
        error: function(data) {
            data = JSON.stringify(data);
            alert(data);
        }
    });

    return false;
}